/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package business;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.FlushModeType;
import javax.persistence.Persistence;
import javax.sql.DataSource;

/**
 *
 * @author ceu
 */
public class PruebaPersistencia {

    EntityManagerFactory emf;
    EntityManager em;
    DataSource ds;


    public PruebaPersistencia(){
        this.ds=null;
    }
    public PruebaPersistencia(DataSource ds) {
        this.ds = ds;
    } //Constructor


     public void setDataSource(DataSource ds) {
        this.ds = ds;
    }

    public void Probar() {

        emf = Persistence.createEntityManagerFactory("UAOProjectPU");
        em = emf.createEntityManager();
        em.setFlushMode(FlushModeType.AUTO);
        em.getTransaction().begin();


//  Voy a meter cositas en la base de datos

       Calendar cal1 = new GregorianCalendar(2007,11,10,2,37,6);
       cal1.set(Calendar.MILLISECOND, 959);
       cal1.setTimeZone(TimeZone.getTimeZone("GMT+1"));
       Date date1 = cal1.getTime();
       Rol r = new Rol("este rol es una caca");
/*
       Empleado e=new Empleado("paco", "jimenez", "34556", r, "empleado@dd", "pass");
        Empleado consejero=new Empleado("pepe", "lopez", "34556", r, "empleado@dd", "pass");
       //Alumno a=new Alumno("angel", "sanchez", "1223455","mama: 1233","angel@ceu.es", "pass");
    //   Alojamiento aloj= new Alojamiento(e, "guzman el bueno", "este piso...");
      // Habitacion h=new Habitacion(aloj, "libre", date1, Boolean.TRUE, "guzman el bueno ");
       aloj.addHabitacion(h);

       Alumno a=new Alumno(consejero,"miguel", "mataus", "1223455","mama","mataus@ceu.es", "pass");
       Float f=new Float(300.34);
       Contratoalumno contrato= new Contratoalumno(a, date1, date1, h, "q es esto?",f);
       a.addContratos(contrato);

        Alumno a2=new Alumno(consejero,"topito", "galan", "1223455","mama","topito@ceu.es", "pass");
 
       em.persist(a);
        em.persist(a2);
       em.persist(e);
       em.persist(aloj);
       em.getTransaction().commit();


       //   voy a sacar cositas de la base de datos

       Alumno sacarAlumno = (Alumno) em.createNamedQuery("Alumno.findByCorreouniversidad")
                    .setParameter("correouniversidad", "topito@ceu.es")
                    .getSingleResult();

        System.out.println("Alumno: "+sacarAlumno.getNombre());
        em.clear();

        //voy a sacar un alojamiento, meterle una habitacion nueva y hacer un merge

        Alojamiento sacarAloj = (Alojamiento) em.createNamedQuery("Alojamiento.findByDireccion")
                    .setParameter("direccion", "guzman el bueno")
                    .getSingleResult();

        Habitacion h2=new Habitacion(sacarAloj, "libre", date1, Boolean.TRUE, "guzman el bueno");
        sacarAloj.addHabitacion(h2);

        Alojamiento upd = em.merge(sacarAloj);
        em.getTransaction().begin();
        em.persist(upd);
        em.getTransaction().commit();

        
      
       em.close();

*/

    }

    public static void main(String[] args) {
        PruebaPersistencia p= new PruebaPersistencia();
        p.Probar();
        
    }
    
}


